package com.itfreer.file.service;

import java.util.Map;

import com.itfreer.file.FileSegmentInfo;

/**
 * 定义对象上传接口
 */
public interface IObjectUploadService {
	
	/**
	 * 创建文件夹
	 * 多级目录创建最后一级即可，比如dir1/dir2/dir3/，创建dir1/dir2/dir3/即可，dir1/、dir1/dir2/不需要创建
	 * @param bucketName	存储块名称
	 * @param objectName	文件夹名称
	 */
	void createDir(String bucketName, String objectName);
	
	/**
	 * 上传文件流
	 * @param bucketName 	存储块名称
	 * @param objectKey		对象存储key
	 * @param content		对象流
	 * @param meta			对象元数据
	 */
	boolean putObject(String bucketName, String objectKey, byte[] content, Map<String, String> meta);
	
	/**
	 * 断点续传上传
	 * @param bucketName	存储块名称
	 * @param objectKey		对象存储key
	 * @param content		上传内容
	 * @param partIndex		分片大小
	 * @param meta			对象元数据
	 */
	boolean uploadFile(String bucketName, String objectKey, FileSegmentInfo part, Map<String, String> meta);
}
